<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="italic" select="7"/>
<xsl:param name="normal" select="4"/>
  
<xsl:template match="/">
 <xsl:element name="Text">
   <xsl:apply-templates/>
 </xsl:element>
</xsl:template>

<xsl:template match="//*[not(text())]">
 <xsl:apply-templates/>
</xsl:template>

<xsl:template match="//*[text()]">
 <xsl:if test="parent::*[text()]">
  <xsl:element name="cs">
   <xsl:attribute name="id"><xsl:value-of select="$italic"/></xsl:attribute>
    <xsl:apply-templates/>
  </xsl:element>
 </xsl:if>
 <xsl:if test="parent::*[not(text())]">
  <xsl:element name="p">
   <xsl:attribute name="id"><xsl:value-of select="$normal"/></xsl:attribute>
    <xsl:apply-templates/>
  </xsl:element>
 </xsl:if>
</xsl:template>

</xsl:stylesheet>
